#include "uart0.h"
#include "CMSDK_driver.h"

void UART0_Init(uint32_t bauds){
	UART_InitTypeDef uart_init;
	
	uart_init.UART_Bauddiv = ((uint32_t)(12 * 1000 * 1000 / bauds));
	uart_init.UART_WorkCtrl = UART_WorkCtrl_TX | UART_WorkCtrl_RX;
	uart_init.UART_IRQ = UART_IRQ_RX;
	
	/* NVIC config */
	NVIC_ClearPendingIRQ(UARTRX0_IRQn);
	NVIC_SetPriority(UARTRX0_IRQn, 1);
	
	NVIC_EnableIRQ(UARTRX0_IRQn);
	
	UART_Init(UART0, & uart_init);
}

void UARTRX0_Handler(void){
	uint8_t rec;
	rec = UART0->DATA;
	CMSDK_uart_SendChar(UART0, rec);
	CMSDK_uart_ClearRxIRQ(UART0);
}
